home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1995 October / Amiga-CD 1995 #10.iso / weitere_demos / adm / arexx / zodiacspoint / zodiacspoint.zprx < prev   
Text File  |  1995-06-04  |  9KB  |  217 lines

  1. /*****************************************************************************
  2.  *  $VER:ZodiacsPoint.zprx 1.1 (08 Okt 1994), Stephan Hellwig              *
  3.  *  EMail: Stephan_H@istda.north.de bzw. Stephan_H@cli.sh.sub.de             *
  4.  *                                                                           *
  5.  *  Arexx-Script für die Zusammenarbeit zwischen dem AddressMaster von       *
  6.  *  Jan Geißler und Zodiac's Point von Ralph Seichter.                       *
  7.  *                                                                           *
  8.  *  AddressMachine.zprx ermöglicht das Verwalten der Adresseinträge von      *
  9.  *  ZPoint mittels des AddressMasters (ADM), einschl. aller damit            *
  10.  *  verbundenen Vorteile. So ist es z.B. möglich jeder Netzadresse eine      *
  11.  *  Telefonnummer, Anschrift, usw. zuzuordnen!                               *
  12.  *                                                                           *
  13.  *  Installation:                                                            *
  14.  *  Aufruf als Menüeintrag bzw. F-Taste (siehe ZPoint-Dokumentation!).       *
  15.  *  z.B. so.: Rexxc:rx ZPoint:Rexx/AddressMachine.zprx <Kommando> %s         *
  16.  *                                                                           *
  17.  *  AddressMachine akzeptiert zur Zeit eines der folgenden Kommandos:        *
  18.  *                                                                           *
  19.  *  ADD      Exportiert die aktuelle Adresse aus ZPoint zum AddressMaster.   *
  20.  *           Die Adressliste wird hierbei automatisch auf doppelte Einträge  *
  21.  *           abgesucht. Bestehende Einträge können auf Wunsch ergänzt werden *
  22.  *                                                                           *
  23.  *  SAVE     Erstellt die aktuelle Adressliste (alias.zp) für ZPoint aus der *
  24.  *           unter Addresslist eingegebenen Adressdatei. Dies ist sowohl aus *
  25.  *           ZPoint als auch aus dem ADM möglich.                            *
  26.  *                                                                           *
  27.  *  Aufruf vom ADM-Menü aus:                                                 *
  28.  *     ARexx/ZodiacsPoint.zprx SAVE                                          *
  29.  *****************************************************************************/
  30.  
  31. OPTIONS RESULTS
  32.  
  33. /*----------------------- ADDRESSMACHINE KONFIGURATION ----------------------*/
  34.  
  35.                 /* In welchem *Verzeichniss* ist ZPoint installiert? Bitte
  36.                  den gültigen DOS-Pfad eingeben, z.B.: dh3:dfue/zpoint/      */ ZPoint        = "ZPoint:"
  37.  
  38.                 /* Es ist möglich die von AddressMachine erstellte
  39.                    Alias-Liste unter anderem Namen zu speichern. Dies ist
  40.                    aber nur in Ausnahmefällen nötig. AddressMachine erstellt
  41.                    Backups von ihrer alias.zp-Datei!                         */ Aliasname     = "alias.zp"
  42.  
  43.                 /* In welchem *Verzeichniss* ist der AddressMaster (ADM)
  44.                  installiert?  Bitte  den  gültigen  DOS-Pfad
  45.                  eingeben, z.B.: dh0:Tools/AddressMaster/                    */ AddressMaster = "ADM:"
  46.  
  47.                 /*welche ADM-Adressdatei soll verwendet werden? Es kann
  48.                  eine Bestehende ergänzt werden oder eine Neue erstellt
  49.                  werden. Zum Ergänzen einer Datei bitte den kompletten
  50.                  DOS-Pfad angeben!                                           */ Addresslist   = "ADM:Adressen/mail.adr"
  51.  
  52.                 /*ADM erlaubt das Setzen eines UserFlag's. Hier können sie
  53.                   angeben welches automatisch gesetzt werden soll. Die
  54.                   Benutzung des UserFlag's können sie in der Dokumentation zu
  55.                   ADM nachlesen! AdmFlag = "0" schaltet diese Funktion ab.   */ AdmFlag       = "0"
  56.  
  57. /*------------------------------- HAUPTPROGRAMM -----------------------------*/ /*                      (ab hier bitte nichts mehr ändern!)                  */
  58.  
  59. IF ~SHOW("LIB","rexxreqtools.library") THEN DO
  60.   IF ~ADDLIB("rexxreqtools.library",0,-30,0) | ~EXISTS("LIBS:rexxreqtools.library") THEN DO
  61.     SAY "AddressMachine.zprx: Kann rexxreqtools.library nicht öffnen"
  62.     EXIT(10)
  63.   END
  64. END
  65.  
  66. IF ZPoint = "" THEN SAY "AddressMachine.zprx: fehlender Parameter 'ZPoint'..." IF AddressMaster = "" THEN SAY "AddressMachine.zprx: fehlender Parameter 'AddressMaster'..." IF AdmFlag = "" THEN AdmFlag = "0"
  67.  
  68. Aliaslist = (ZPoint"Bretter/"Aliasname)
  69.  
  70. PARSE ARG Kommando ZPRexxPort
  71.  
  72. IF ZPRexxPort = "" THEN ZPRexxPort = "ZPoint" ZPRexxPort = SPACE(ZPRexxPort,0)
  73.  
  74. IF UPPER(Kommando) = "SAVE" THEN CALL SAVE IF UPPER(Kommando) = "ADD"  THEN CALL ADD IF UPPER(Kommando) = "" THEN SAY "AddressMachine.zprx: Keine Kommandos übergeben..." EXIT
  75.  
  76. /*----------------------------- UNTERPROGRAMM "ADD"  ------------------------*/
  77.  
  78. ADD:
  79.   ADDRESS (ZPRexxPort)
  80.   WHICHLEVEL
  81.   IF (RESULT ~= "BOARD") THEN DO
  82.     EXIT
  83.   END
  84.  
  85.   MESSAGEINFO AUTHOR
  86.   Author = RESULT
  87.   res = WORDS(Author)
  88.  
  89.   IF res > 2 THEN DO
  90.     Nachname = DELSTR((DELWORD(Author,1,((WORDS(Author))-1))),(LENGTH((DELWORD(Author,1,((WORDS(Author))-1))))),1)
  91.     Vorname  = DELSTR((SUBWORD(Author,2,(WORDS(Author)-2))),1,1)
  92.   END
  93.   IF res < 3 THEN DO
  94.     Nachname = Author
  95.     Vorname  = " "
  96.   END
  97.  
  98. CALL ADM()
  99.   ADDRESS "ADM.1"
  100.   ADM.LASTNAME  = Nachname
  101.   ADM.FIRSTNAME = Vorname
  102.   SEARCH 1 ADM
  103.   res = RESULT
  104.  
  105.   IF res =-1 THEN CALL AddAddress()
  106.   IF res >-1 THEN DO
  107.     DISPLAY
  108.     CALL Requester()
  109.     ReqText_Print = "Eintrag " UPPER(Vorname) UPPER(Nachname) " schon vorhanden!"
  110.     CALL rtezrequest(ReqText_Print,"Ergänze Eintrag|Neuer Eintrag|Abbruch","AddressMachine.zprx-Request",ReqTags_Print)
  111.     erg = RESULT
  112.     IF erg = 1 THEN CALL ChangeAddress()
  113.     ELSE IF erg = 2 THEN CALL AddAddress()
  114.     ELSE IF erg = 0 THEN DO
  115.       QUIT
  116.       EXIT
  117.     END
  118.   END
  119.  
  120.   IF res <-1 THEN DO
  121.     ADDRINMEM
  122.     anz = RESULT
  123.     IF anz = 0 THEN CALL AddAddress()
  124.     ELSE SAY "AddressMachine.zprx: Ein fataler Fehler im AddressMaster ist aufgetreten..."
  125.   END
  126. RETURN
  127.  
  128. /*---------------------------- UNTERPROGRAMM "SAVE"  ------------------------*/
  129.  
  130. SAVE:
  131.   CALL ADM()
  132.   ADDRESS "ADM.1"
  133.   ADDRINMEM
  134.   ANZ = RESULT
  135.  
  136.   IF EXISTS(Aliaslist) THEN ADDRESS COMMAND "copy >NIL: "Aliaslist" TO T:adm.temp QUIET"
  137.   ok = OPEN('Tempfile',"T:"Aliasname,'W')
  138.   ok = WRITELN('Tempfile',";Aliasliste erstellt mit AddressMachine von Stephan Hellwig")
  139.  
  140.   DO N = 1 TO ANZ
  141.     ACTIVATE N
  142.     IF RC = -1 THEN DO
  143.       SAY "AddressMachine.zprx: Keine Adressen vorhanden..."
  144.       EXIT(10)
  145.     END
  146.     GETADDRESS ADM
  147.     IF ADM.EMAIL1 > "" THEN DO
  148.       ok = WRITELN('Tempfile',"N:" || ADM.LASTNAME || ", " ||ADM.FIRSTNAME)
  149.       ok = WRITELN('Tempfile',"A:" || ADM.EMAIL1)
  150.       ok = WRITELN('Tempfile',"-")
  151.     END
  152.     IF ADM.EMAIL2 > "" THEN DO
  153.       ok = WRITELN('Tempfile',"N:" || ADM.LASTNAME || ", " ||ADM.FIRSTNAME)
  154.       ok = WRITELN('Tempfile',"A:" || ADM.EMAIL2)
  155.       ok = WRITELN('Tempfile',"-")
  156.     END
  157.   END
  158.  
  159.   IF EXISTS(Aliaslist) THEN DO
  160.     ck = OPEN('Check',Aliaslist,'R')
  161.     ck = READCH('Check',39)
  162.     IF ck ~== ";Aliasliste erstellt mit AddressMachine von Stephan Hellwig" THEN DO
  163.       ck = CLOSE('Check')
  164.       ADDRESS COMMAND "copy "Aliaslist "TO" Aliaslist".org"
  165.     END
  166.     ELSE DO
  167.       ck = CLOSE('Check')
  168.     END
  169.     CALL Requester()
  170.     ReqText_Print = "Datei "UPPER(Aliasname)" existiert schon!" || "0A"x || "Soll sie überschrieben werden?"
  171.     CALL rtezrequest(ReqText_Print,"Überschreiben|Backup|Abbruch","AddressMachine.zprx-Request",ReqTags_Print)
  172.     erg = RESULT
  173.     IF erg = 0 THEN EXIT
  174.     IF erg = 1 THEN ADDRESS COMMAND "delete "Aliaslist" QUIET"
  175.     IF erg = 2 THEN DO
  176.       IF EXISTS(Aliaslist".bak")THEN ADDRESS COMMAND "delete "Aliaslist".bak QUIET"
  177.       ADDRESS COMMAND "rename "Aliaslist" AS "Aliaslist".bak QUIET"
  178.       END
  179.     END
  180.  
  181.   ok = CLOSE('Tempfile')
  182.   ADDRESS COMMAND "copy T:"Aliasname" TO "Aliaslist
  183.   ADDRESS COMMAND "delete T:"Aliasname" QUIET" RETURN
  184.  
  185. /*------------------------------ DIE PROZEDUREN -----------------------------*/
  186.  
  187. ADM:
  188.   IF ~SHOW("P","ADM.1")THEN DO
  189.     IF ~ EXISTS(AddressMaster"AddressMaster")THEN DO
  190.       SAY "AddressMachine.zprx: Kann AddressMaster nicht starten..."
  191.       EXIT(20)
  192.     END
  193.     IF EXISTS(Addresslist) THEN ADDRESS COMMAND "run >NIL:" AddressMaster"AddressMaster" Addresslist" PUBSCREEN="ZPRexxPort "CLOSEQUIT"
  194.     ELSE ADDRESS COMMAND "run >NIL:" AddressMaster"AddressMaster PUBSCREEN="ZPRexxPort "CLOSEQUIT"
  195.     END
  196.   ADDRESS COMMAND "WAITFORPORT ADM.1"
  197. RETURN
  198.  
  199. Requester:
  200.   ReqTags_Print = "rt_reqpos=reqpos_centerscr rt_pubscrname="ZPRexxPort" rt_lockwindow=TRUE rtez_flags=ezreqf_centertext" RETURN
  201.  
  202. AddAddress:
  203.   ADM.EMAIL1 = Author
  204.   ADM.FLAGS  = AdmFlag
  205.   NEWADDRESS ADM
  206.   DISPLAY
  207. RETURN
  208.  
  209. ChangeAddress:
  210.   GETADDRESS RESAD
  211.   RESAD.EMAIL1 = Author
  212.   RESAD.FLAGS  = AdmFlag
  213.   CHANGEADDRESS RESAD
  214.   DISPLAY
  215. RETURN
  216.  
  217.